package lu.med.praxiswahl.wahlumed.client.ordonancen;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;

import lu.med.praxiswahl.wahlumed.client.utilities.UniCode;
import lu.med.praxiswahl.wahlumed.client.wclient.Main;


/**
 * 
 * @author Lars Holger Roth
 */
public class OrdonancenOptionsDialog extends JDialog implements ActionListener
{
    /**
     * 
     */
    private static final long serialVersionUID = 6103513058148674842L;
    private JCheckBox cba, cbb, cbc;
    private JTextArea taa, tab, tac;
    @SuppressWarnings("unused")
    private Main dataManager;

    public OrdonancenOptionsDialog(Main dataManager)
    {
	super(dataManager, "Ordonancen Optionen", true);
	this.setLayout(new BorderLayout());
	this.dataManager = dataManager;

	// Unten befindet sich ein Panel mit einer Anleitung
	JPanel aaPanel = new JPanel(new BorderLayout());
	JPanel aPanel = new JPanel(new GridLayout(0, 1));
	aPanel
		.add(new JLabel(
			"Den drei Vorlagen Labor, Überweisung und Rezept können hier"));
	aPanel
		.add(new JLabel(
			"eine Mischung statischer und dynamischer Elemente hinzugefügt"));
	aPanel.add(new JLabel("werden."));
	aPanel
		.add(new JLabel(
			"Statischer Text kann einfach so eingegeben werden. Dynamischer Text"));
	aPanel
		.add(new JLabel(
			"wird in Form der Ordonancen Schlüsselwörter in den Fließtext eingetragen,"));
	aPanel
		.add(new JLabel(
			"an welchem dann der entsprechende Text, der mit dem Schlüsselwort"));
	aPanel
		.add(new JLabel(
			"verknüpft ist, eingefügt werden soll. Schlüsselwörter müssen hierbei"));
	aPanel
		.add(new JLabel(
			"mit einem { als Suffix eingleitet und mit einem } abgeschlossen werden"));
	aPanel.add(new JLabel(
		"Des weiteren kann man zu jeder Vorlage einstellen, ob die"));
	aPanel.add(new JLabel("Adresse mit ausgegeben werden soll"));
	aaPanel.add(aPanel, BorderLayout.CENTER);
	JPanel bPanel = new JPanel();
	JButton cancelB = new JButton("Abbrechen");
	JButton okB = new JButton("Übernehmen");
	cancelB.addActionListener(this);
	okB.addActionListener(this);
	bPanel.add(okB);
	bPanel.add(cancelB);
	aaPanel.add(bPanel, BorderLayout.SOUTH);
	this.add(aaPanel, BorderLayout.SOUTH);

	// Oben befinden sich die Optionen in einem Tabbed Pane
	JTabbedPane pane = new JTabbedPane();

	// Vorlage Labor
	JPanel a = new JPanel(new BorderLayout());
	JPanel aa;
	aa = new JPanel(new GridLayout(0, 1));
	cba = new JCheckBox("Adresse mit drucken:");
	aa.add(cba);
	taa = new JTextArea("");
	JScrollPane spa = new JScrollPane(taa);
	a.add(aa, BorderLayout.NORTH);
	a.add(spa, BorderLayout.CENTER);
	pane.add("Labor", a);

	// Vorlage �berweisung
	JPanel b = new JPanel(new BorderLayout());
	JPanel ba;
	ba = new JPanel(new GridLayout(0, 1));
	cbb = new JCheckBox("Adresse mit drucken:");
	ba.add(cbb);
	tab = new JTextArea("");
	JScrollPane spb = new JScrollPane(tab);
	b.add(ba, BorderLayout.NORTH);
	b.add(spb, BorderLayout.CENTER);
	pane.add("Überweisung", b);

	// Vorlage Rezept
	JPanel c = new JPanel(new BorderLayout());
	JPanel ca;
	ca = new JPanel(new GridLayout(0, 1));
	cbc = new JCheckBox("Adresse mit drucken:");
	ca.add(cbc);
	tac = new JTextArea("");
	JScrollPane spc = new JScrollPane(tac);
	c.add(ca, BorderLayout.NORTH);
	c.add(spc, BorderLayout.CENTER);
	pane.add("Rezept", c);

	this.add(pane, BorderLayout.CENTER);

	// L�dt die Daten vom Server und �bertr�gt sie in die GUI
	@SuppressWarnings("unused")
	String com = "GET_ORD_VORLAGE";
	/*
	 * try { dataManager.getOutputStream().writeUTF(com); String ret =
	 * dataManager.getInpupStream().readUTF(); // Umwandeln der Server
	 * Antwort in die eigentlichen Daten VorlageOrdonancen data = new
	 * VorlageOrdonancen(ret); if (data.getLaborAdresse().equals("true"))
	 * cba.setSelected(true); if (data.getRezeptAdresse().equals("true"))
	 * cbb.setSelected(true); if (data.getUewAdresse().equals("true"))
	 * cbc.setSelected(true);
	 * taa.setText(Parser.transformStringToReturn(data.getLaborTxt()));
	 * tab.setText(Parser.transformStringToReturn(data.getRezeptTxt()));
	 * tac.setText(Parser.transformStringToReturn(data.getUewTxt())); }
	 * catch (IOException io) {
	 * JOptionPane.showMessageDialog(this,"Verbindung zum Server verloren"
	 * ,"WClient",JOptionPane.ERROR_MESSAGE); return; }
	 */

	this.pack();
	this.setLocation(200, 200);
	this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
	if (e.getActionCommand().equals("" + UniCode.getUE() + "bernehmen"))
	{
	    // �bertr�gt die Daten an den Server
	    @SuppressWarnings("unused")
	    String com = "SET_ORD_VORLAGE#";
	    /*
	     * try { VorlageOrdonancen data = new VorlageOrdonancen();
	     * data.setLaborTxt(Parser.transformStringOfReturn(taa.getText()));
	     * data.setRezeptTxt(Parser.transformStringOfReturn(tab.getText()));
	     * data.setUewTxt(Parser.transformStringOfReturn(tac.getText())); if
	     * (cba.isSelected()) data.setLaborAdresse("true"); else
	     * data.setLaborAdresse("false"); if (cbb.isSelected())
	     * data.setRezeptAdresse("true"); else
	     * data.setRezeptAdresse("false"); if (cbc.isSelected())
	     * data.setUewAdresse("true"); else data.setUewAdresse("false"); com
	     * += data.toString(); dataManager.getOutputStream().writeUTF(com);
	     * String ret = dataManager.getInpupStream().readUTF(); } catch
	     * (IOException io) {
	     * JOptionPane.showMessageDialog(this,"Verbindung zum Server verloren"
	     * ,"WClient",JOptionPane.ERROR_MESSAGE); return; }
	     */
	    this.setVisible(false);
	}
	else
	    this.setVisible(false);
    }

}
